.. :validated: 3.0.0

Резервное копирование подсистем ALD Pro
------------------------------------------------------

Резервное копирование (далее - бэкапирование)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

-  Раздел состоит из перечня скриптов резервного копирования каждой подсистемы (сервера).
-  Требования к последовательности запуска скриптов - отсутствуют.
-  Допустимо выборочное резервное копирование подсистем (серверов).

Резервное копирование Контроллера домена
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

Для выполнения резервного копирования Контроллера Домена необходимо перейти на рабочую станцию, которая выполняет роль Контроллера Домена и выполнить скрипт:

.. code-block:: bash

   #!/usr/bin/env bash
   # Название директории для резервной копии формируется
   # из текущей даты и находится в папке /tmp/backup 
   now=$(date +"%d-%m-%Y")
   BACKUP_PATH=/tmp/backup/$now
   # Создание временной директории для резервных копий
   mkdir -p $BACKUP_PATH
   # Ограничение прав доступа к каталогу с резервными копиями
   chown root:root $BACKUP_PATH && chmod 700 $BACKUP_PATH
   # Создание резервной копии FreeIPA
   ipa-backup
   # Архивирование РК FreeIPA
   tar -zcvf $BACKUP_PATH/ipa.tar.gz /var/lib/ipa/backup
   # Очистка промежуточного бэкапа FreeIPA
   rm -rf /var/lib/ipa/backup/*
   # Остановка затрагиваемых бэкапом сервисов
   systemctl stop apache2 celery celerybeat rabbitmq-server postgresql aldpro-salt-minion
   # Архивирование БД PostgreSQL
   tar -zcvf $BACKUP_PATH/postgresql.tar.gz /var/lib/postgresql/
   # Архивирование RabbitMQ
   tar -zcvf $BACKUP_PATH/rabbitmq.tar.gz /var/lib/rabbitmq/mnesia/
   # Архивирование директории ipa-client
   tar -zcvf $BACKUP_PATH/ipa-client.tar.gz /var/lib/ipa-client/
   # Архивирование логов
   tar -zcvf $BACKUP_PATH/log.tar.gz --exclude=faillog --exclude=lastlog /var/log/
   # Архивирование директории etc
   tar -zcvf $BACKUP_PATH/etc.tar.gz /etc/
   # Архивирование директории rbta
   tar -zcvf $BACKUP_PATH/rbta.tar.gz /opt/rbta/
   # Запуск затрагиваемых бэкапом сервисов
   systemctl start apache2 celery celerybeat rabbitmq-server postgresql aldpro-salt-minion

Реплики - это равноправные серверы, не требующие отдельных условий для резервного копирования. Для их копирования используются команды, аналогичные командам для резервного копирования Контроллера домена.

Резервное копирование подсистемы журналирования событий
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

Для выполнения резервного копирования подсистемы журналирования событий необходимо перейти на рабочую станцию, которая выполняет функцию сервера журналирования событий и выполнить скрипт:

.. code-block:: bash

   #!/usr/bin/env bash
   # Название директории для резервной копии формируется
   # из текущей даты и находится в папке /tmp/backup
   now=$(date +"%d-%m-%Y")
   BACKUP_PATH=/tmp/backup/$now
   # Создание временной директории для резервных копий
   mkdir -p $BACKUP_PATH
   # Ограничение прав доступа к каталогу с резервными копиями
   chown root:root $BACKUP_PATH && chmod 700 $BACKUP_PATH
   # Архивирование логов
   tar -zcvf $BACKUP_PATH/log.tar.gz --exclude=faillog --exclude=lastlog /var/log/
   # Архивирование директории etc
   tar -zcvf $BACKUP_PATH/etc.tar.gz /etc/
   # Архивирование директории ipa-client
   tar -zcvf $BACKUP_PATH/ipa-client.tar.gz /var/lib/ipa-client/
   
Резервное копирование подсистемы печати
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

Для выполнения резервного копирования подсистемы печати необходимо перейти на рабочую станцию, которая выполняет функцию сервера печати и выполнить скрипт:

.. code-block:: bash

   #!/usr/bin/env bash
   # Название директории для резервной копии формируется
   # из текущей даты и находится в папке /tmp/backup
   now=$(date +"%d-%m-%Y")
   BACKUP_PATH=/tmp/backup/$now
   # Создание временной директории для резервных копий
   mkdir -p $BACKUP_PATH
   # Ограничение прав доступа к каталогу с резервными копиями
   chown root:root $BACKUP_PATH && chmod 700 $BACKUP_PATH
   # Остановка затрагиваемых бэкапом сервисов
   systemctl stop cups aldpro-salt-minion
   # архивирование директории ipa-client
   tar -zcvf $BACKUP_PATH/ipa-client.tar.gz /var/lib/ipa-client/
   # архивирование логов
   tar -zcvf $BACKUP_PATH/log.tar.gz --exclude=faillog --exclude=lastlog /var/log/
   # архивирование директории etc
   tar -zcvf $BACKUP_PATH/etc.tar.gz /etc/
   # Запуск затрагиваемых бэкапом сервисов
   systemctl start cups aldpro-salt-minion

Резервное копирование подсистемы DHCP
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

Для выполнения резервного копирования подсистемы DHCP необходимо перейти на рабочую станцию, которая выполняет функцию сервера DHCP и выполнить скрипт:

.. code-block:: bash

   #!/usr/bin/env bash
   # Название директории для резервной копии формируется
   # из текущей даты и находится в папке /tmp/backup
   now=$(date +"%d-%m-%Y")
   BACKUP_PATH=/tmp/backup/$now
   # Создание временной директории для резервных копий
   mkdir -p $BACKUP_PATH
   # Ограничение прав доступа к каталогу с резервными копиями
   chown root:root $BACKUP_PATH && chmod 700 $BACKUP_PATH
   # Архивирование директории ipa-client
   tar -zcvf $BACKUP_PATH/ipa-client.tar.gz /var/lib/ipa-client/
   # Архивирование логов
   tar -zcvf $BACKUP_PATH/log.tar.gz --exclude=faillog --exclude=lastlog /var/log/
   # Архивирование директории etc
   tar -zcvf $BACKUP_PATH/etc.tar.gz /etc/

Резервное копирование подсистемы мониторинга
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

Для выполнения резервного копирования подсистемы мониторинга необходимо перейти на рабочую станцию, которая выполняет функцию сервера мониторинга и выполнить скрипт:

.. code-block:: bash

   #!/usr/bin/env bash
   # Название директории для резервной копии формируется
   # из текущей даты и находится в папке /tmp/backup
   now=$(date +"%d-%m-%Y")
   BACKUP_PATH=/tmp/backup/$now
   # Создание временной директории для резервных копий
   mkdir -p $BACKUP_PATH
   # Ограничение прав доступа к каталогу с резервными копиями
   chown root:root $BACKUP_PATH && chmod 700 $BACKUP_PATH
   # Остановка затрагиваемых бэкапом сервисов
   systemctl stop apache2 zabbix-agent zabbix-server postgresql aldpro-salt-minion
   # Архивирование директории ipa-client
   tar -zcvf $BACKUP_PATH/ipa-client.tar.gz /var/lib/ipa-client/
   # Архивирование логов
   tar -zcvf $BACKUP_PATH/log.tar.gz --exclude=faillog --exclude=lastlog /var/log/
   # Архивирование директории etc
   tar -zcvf $BACKUP_PATH/etc.tar.gz /etc/
   # Архивирование zabbix
   tar -zcvf $BACKUP_PATH/zabbix.tar.gz /usr/share/zabbix/
   # Архивирование БД PostgreSQL
   tar -zcvf $BACKUP_PATH/postgresql.tar.gz /var/lib/postgresql/
   # Запуск затрагиваемых бэкапом сервисов
   systemctl start apache2 zabbix-agent zabbix-server postgresql aldpro-salt-minion

Резервное копирование подсистемы установки ОС по сети
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

Для выполнения резервного копирования подсистемы установки ОС по сети необходимо перейти на рабочую станцию, которая выполняет функцию сервера установки ОС по сети и выполнить скрипт:

.. code-block:: bash

   #!/usr/bin/env bash
   # Название директории для резервной копии формируется
   # из текущей даты и находится в папке /tmp/backup
   now=$(date +"%d-%m-%Y")
   BACKUP_PATH=/tmp/backup/$now
   # Создание временной директории для резервных копий
   mkdir -p $BACKUP_PATH
   # Ограничение прав доступа к каталогу с резервными копиями
   chown root:root $BACKUP_PATH && chmod 700 $BACKUP_PATH
   # Остановка затрагиваемых бэкапом сервисов
   systemctl stop apache2 postgresql aldpro-salt-minion
   # Архивирование PostgreSQL
   tar -zcvf $BACKUP_PATH/postgresql.tar.gz /var/lib/postgresql/
   # Архивирование логов
   tar -zcvf $BACKUP_PATH/log.tar.gz --exclude=faillog --exclude=lastlog /var/log/
   # Архивирование директории etc
   tar -zcvf $BACKUP_PATH/etc.tar.gz /etc/
   # Архивирование директории ipa-client
   tar -zcvf $BACKUP_PATH/ipa-client.tar.gz /var/lib/ipa-client/
   # Архивирование директории tftp
   tar -zcvf $BACKUP_PATH/tftp.tar.gz /var/www/tftp/
   # Запуск затрагиваемых бэкапом сервисов
   systemctl start apache2 postgresql aldpro-salt-minion

Резервное копирование подсистемы репозиториев ПО
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

Для выполнения резервного копирования подсистемы репозиториев ПО необходимо перейти на рабочую станцию, которая выполняет функцию сервера репозиториев ПО по сети и выполнить скрипт:

.. code-block:: bash

   #!/usr/bin/env bash
   # Название директории для резервной копии формируется
   # из текущей даты и находится в папке /tmp/backup
   now=$(date +"%d-%m-%Y")
   BACKUP_PATH=/tmp/backup/$now
   # Создание временной директории для резервных копий
   mkdir -p $BACKUP_PATH
   # Ограничение прав доступа к каталогу с резервными копиями
   chown root:root $BACKUP_PATH && chmod 700 $BACKUP_PATH
   # Остановка затрагиваемых бэкапом сервисов
   systemctl stop apache2 postgresql rabbitmq-server aldpro-salt-minion
   # Архивирование БД PostgreSQL
   tar -zcvf $BACKUP_PATH/postgresql.tar.gz /var/lib/postgresql/
   # Архивирование данных брокера очередей RabbitMQ
   tar -zcvf $BACKUP_PATH/rabbitmq.tar.gz /var/lib/rabbitmq/mnesia/
   # Архивирование логов
   tar -zcvf $BACKUP_PATH/log.tar.gz --exclude=faillog --exclude=lastlog /var/log/
   # Архивирование директории etc
   tar -zcvf $BACKUP_PATH/etc.tar.gz /etc/
   # Архивирование директории ipa-client
   tar -zcvf $BACKUP_PATH/ipa-client.tar.gz /var/lib/ipa-client/
   # Архивирование директории repo/storage
   tar -zcvf $BACKUP_PATH/storage.tar.gz /opt/rbta/aldpro/repo/storage/
   tar -zcvf $BACKUP_PATH/ipa-client.tar.gz /var/lib/ipa-client/
   # Архивирование домашнего каталога учетной записи repo
   tar -zcvf $BACKUP_PATH/repo.tar.gz  /var/lib/repo/
   # Запуск бэкапируемых сервисов
   systemctl start apache2 postgresql rabbitmq-server aldpro-salt-minion

Резервное копирование подсистемы общего доступа 
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

Для выполнения резервного копирования подсистемы общего доступа необходимо перейти на рабочую станцию, которая выполняет функцию сервера общего доступа по сети и выполнить скрипт:

.. code-block:: bash

   #!/usr/bin/env bash
   # Название директории для резервной копии формируется
   # из текущей даты и находится в папке /tmp/backup
   now=$(date +"%d-%m-%Y")
   BACKUP_PATH=/tmp/backup/$now
   # Создание временной директории для резервных копий
   mkdir -p $BACKUP_PATH
   # Ограничение прав доступа к каталогу с резервными копиями
   chown root:root $BACKUP_PATH && chmod 700 $BACKUP_PATH
   # Остановка затрагиваемых бэкапом сервисов
   systemctl stop aldpro-salt-minion
   # Архивирование логов
   tar -zcvf $BACKUP_PATH/log.tar.gz --exclude=faillog --exclude=lastlog /var/log/
   # Архивирование директории etc
   tar -zcvf $BACKUP_PATH/etc.tar.gz /etc/
   # Архивирование директории ipa-client
   tar -zcvf $BACKUP_PATH/ipa-client.tar.gz /var/lib/ipa-client/
   # Архивирование директории /opt/samba_shares/
   tar -zcvf $BACKUP_PATH/samba.tar.gz /opt/samba_shares/
   # Запуск затрагиваемых бэкапом сервисов
   systemctl start aldpro-salt-minion

Восстановление
~~~~~~~~~~~~~~~~~~~~~~~~

-  Раздел состоит из перечня скриптов восстановления каждой подсистемы (сервера).
-  Требования к последовательности запуска скриптов восстановления - отсутствуют.
-  Допустимо выборочное восстановление подсистем (серверов).

.. attention::

   Все подсистемы устанавливаются только на машины-клиенты. Запрещено устанавливать две подсистемы на одну машину. Версия ОС и установленных пакетов должна быть идентична версии ОС, на которой работала подсистема. 

При восстановлении данных через **RuBackup** на одном из контроллеров домена выполняется авторитативное восстановление. В этом случае восстанавливаемый контроллер домена получает новое значение генератора **CSN** и прекращает участие в репликации. Чтобы завершить восстановление домена, необходимо выполнить реинициализацию остальных контроллеров. Используйте команду: 

.. code-block:: 
   
   ipa-replica-manage re-initialize --from <имя_восстановленного_контроллера> 

После реинициализации все контроллеры скопируют базу данных с восстановленного контроллера, включая новое значение генератора **CSN**, поэтому репликация в домене восстановится.

.. attention::
   
   Все изменения, внесённые в домен после создания резервной копии, будут утеряны.

.. _restoring_dc:

Восстановление Контроллера Домена
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

Для восстановления Контроллера Домена (КД) с использованием резервной копии небходимо соблюдение следующих условий:

* Имя и адрес машины, на которой будет производиться восстановление КД, должно совпадать с именем и адресом машины, с которой была сделана резервная копия.

* Версия ОС и версия обновления ОС на машине, на которой будет восстановлен КД, должны быть идентичны тем, что были установленны на машине, с которой сделана резервная копия.

В зависимости от количества КД в системе, восстановление резервной копии может отличаться:

* В домене только один рабочий КД, на котором необходимо откатить данные на момент создания резервной копии. Необходимо воспользоваться скриптом для восстановления ниже.

* В домене один КД, который вышел из строя, и восстановить его работостособность невозможно или нецелесообразно. Необходимо развернуть новый КД, идентичный вышедшему из строя, и воспользоваться скриптом для восстановления ниже. После перезагрузки восстановленного КД, необходимо проверить синхронизацию времени на КД и на других машинах, введенных в домен, для корректной работы билетов **Kerberos**.

* В домене несколько КД, машина, накотором был установлен один из них, вышла из строя. Необходимо настроить машину и завести ее в домен с именем и адресом, идентичными тем, что были у машины, вышедшей из строя. С помощью команды ``aldpro-roles --uid --action install`` установить подсистему на новую машину. Воспользоваться скриптом для восстановления ниже. Повторить инициализацию КД для получения им актуальных данных с работающих КД.

* В домене несколько КД, на одном из них произошел сбой и часть актуальной информации утрачена. Необходимо воспользоваться скриптом восстановления ниже. Произвести инициализацию работающих КД с восстановленным.

Скрипт для восстановления КД:

.. code-block:: bash

   #!/bin/bash
   # Перейти в директорию с резервными копиями
   cd /tmp/backup/{дата создания бэкапа}
   # Разархивирование РК IPA
   tar -C "/" -xvf ipa.tar.gz
   # Восстановление IPA из РК
   ipa-restore /var/lib/ipa/backup/ipa-full-YOUR_BACKUP_DATE
   # Остановка затрагиваемых восстановлением сервисов
   systemctl stop apache2 celery celerybeat rabbitmq-server postgresql aldpro-salt-minion
   # Чистим кеш у sssd service
   rm -f /var/lib/sss/db/*
   # Восстановление БД Postgresql
   tar -C "/" -xvf postgresql.tar.gz
   # Восстановление RabbitMQ
   tar -C "/" -xvf rabbitmq.tar.gz
   # Восстановление логов
   tar -C "/" -xvf log.tar.gz
   # Восстановление директории etc
   tar -C "/" -xvf etc.tar.gz --exclude=etc/fstab
   # Восстановление директории rbta
   tar -C "/" -xvf rbta.tar.gz
   # Восстановление ipa-client
   tar -C "/" -xvf ipa-client.tar.gz
   # Перезагрузка
   reboot

При выполнении скрипта ``backup_dc.sh`` архивируется бэкап, имя которого необходимо впоследствии подставить в скрипт восстановления. Имя бэкапа хранится в архиве. Если имя не указать, возникнет ошибка, но при этом бэкап разархивируется в ``/var/lib/ipa/backup/``, по этому пути также можно будет найти имя бэкапа и подставить в скрипт для повторного выполнения.

Команда для просмотра содержимого архива:

.. code-block::
   
   tar -ztvf /tmp/backup/{дата создания бэкапа}/ipa.tar.gz
 
Команда для переинициализации репликации:

.. code-block:: 
   
   ipa-replica-manage re-initialize --from dc-1.ald.company.lan

Восстановление подсистемы журналирования событий
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

Восстановить подсистему необходимо, потому что:

* Производились работы в конфигурационных файлах, после чего подсистема перестала работать.
  Для восстановления подсистемы необходимо воспользоваться скриптом ниже.

* Машина, на которой располагалась подсистема, вышла из строя и нет возможности восстановить ее работу.
  Для восстановления подсистемы необходимо завести в домен машину с именем и адресом, идентичными тем, что были у машины, вышедшей из строя. С помощью команды ``aldpro-roles --uid --action install`` установить подсистему на новую машину. Запустить команду для получения переменных конфигурации для подсистемы ``aldpro-salt-call aldpro_subsystems.build_audit_role_pillar``. Запустить команду для генерации конфигурационных файлов из полученных переменных ``aldpro-salt-call state.apply roles.audit``. Воспользоваться скриптом для восстановления ниже. 

Скрипт для восстановления подсистемы:

.. code-block:: bash

   #!/bin/bash
   # Переход в директорию с резервными копиями
   cd /tmp/backup/
   # Остановка затрагиваемых восстановлением сервисов
   systemctl stop syslog-ng aldpro-salt-minion
   # Восстановление логов
   tar -C "/" -xvf log.tar.gz
   # Перезагрузка
   reboot

Восстановление подсистемы печати 
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

Восстановить подсистему необходимо, потому что:

* Производились работы в конфигурационных файлах, после чего подсистема перестала работать.
  Для восстановления подсистемы необходимо воспользоваться скриптом ниже.

* Машина, на которой располагалась подсистема, вышла из строя и нет возможности восстановить ее работу.
  Для восстановления подсистемы необходимо завести в домен машину с именем и адресом, идентичными тем, что были у машины, вышедшей из строя. С помощью команды ``aldpro-roles --uid --action install`` установить подсистему на новую машину. Запустить команду для получения переменных конфигурации для подсистемы ``aldpro-salt-call aldpro_subsystems.build_cups_role_pillar``. Запустить команду для генерации конфигурационных файлов из полученных переменных ``aldpro-salt-call state.apply roles.cups``. Воспользоваться скриптом для восстановления ниже. 

Скрипт для восстановления подсистемы:

.. code-block:: bash

   #!/bin/bash
   # Переход в директорию с резервными копиями
   cd /tmp/backup/
   # Остановка затрагиваемых бэкапом сервисов
   systemctl stop cups aldpro-salt-minion
   # Восстановление логов
   tar -C "/" -xvf log.tar.gz
   # Восстановление директории etc
   tar -C "/" -xvf etc.tar.gz
   # Восстановление ipa-client
   tar -C "/" -xvf ipa-client.tar.gz
   # Перезагрузка
   reboot

.. attention::

   При восстановлении указанным способом информация в LDAP и на сервере может отличаться. Чтобы избежать этого, после восстановления системы необходимо выполнить команду:
   ``aldpro-roles --subsystem_settings cups``

Восстановление подсистемы DHCP
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

Восстановить подсистему необходимо, потому что:

* Производились работы в конфигурационных файлах, после чего подсистема перестала работать.
  Для восстановления подсистемы необходимо воспользоваться скриптом ниже.

* Машина, на которой располагалась подсистема, вышла из строя и нет возможности восстановить ее работу.
  Для восстановления подсистемы необходимо завести в домен машину с именем и адресом, идентичными тем, что были у машины, вышедшей из строя. С помощью команды ``aldpro-roles --uid --action install`` установить подсистему на новую машину. Запустить команду для получения переменных конфигурации для подсистемы ``aldpro-salt-call aldpro_subsystems.build_dhcp_role_pillar``. Запустить команду для генерации конфигурационных файлов из полученных переменных ``aldpro-salt-call state.apply roles.dhcp``. Воспользоваться скриптом для восстановления ниже. 

Скрипт для восстановления подсистемы:

.. code-block:: bash

   #!/bin/bash
   # Перейти в директорию с резервными копиями
   cd /tmp/backup/
   # Остановка затрагиваемых восстановлением сервисов
   systemctl stop isc-dhcp-server aldpro-salt-minion
   # Восстановление логов
   tar -C "/" -xvf log.tar.gz
   # Восстановление директории  etc
   tar -C "/" -xvf etc.tar.gz
   # Восстановление  ipa-client
   tar -C "/" -xvf ipa-client.tar.gz
   # Перезагрузка
   reboot

.. attention::

   При восстановлении указанным способом информация в LDAP и на сервере может отличаться. Чтобы избежать этого, после восстановления системы необходимо выполнить команду: ``aldpro-roles --subsystem_settings dhcp``

Восстановление подсистемы мониторинга
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

Восстановить подсистему необходимо, потому что:

* Производились какие-то работы, после чего подсистема перестала работать.
  Для восстановления подсистемы необходимо воспользоваться скриптом ниже.

* Машина, на которой располагалась подсистема, вышла из строя и нет возможности восстановить ее работу.
  Для восстановления подсистемы необходимо завести в домен машину с именем и адресом, идентичными тем, что были у машины, вышедшей из строя. С помощью команды ``aldpro-roles --uid --action install`` установить подсистему на новую машину. Воспользоваться скриптом для восстановления ниже. 

Скрипт для восстановления подсистемы:

Пароль для восстановления базы данных - ``postgres``

.. code-block:: bash

   #!/bin/bash
   # Перейти в директорию с резервными копиями
   cd /tmp/backup/
   # Остановка затрагиваемых бэкапом сервисов
   systemctl stop apache2 zabbix-agent zabbix-server postgresql aldpro-salt-minion
   # Восстановление БД PostgreSQL
   tar -C "/" -xvf postgresql.tar.gz
   # Восстановление логов
   tar -C "/" -xvf log.tar.gz
   # Восстановление директории zabbix
   tar -C "/" -xvf zabbix.tar.gz
   # Перезагрузка
   reboot

Восстановление подсистемы установки ОС по сети
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

Восстановить подсистему необходимо, потому что:

* Производились работы в конфигурационных файлах, после чего подсистема перестала работать.
  Для восстановления подсистемы необходимо воспользоваться скриптом:

.. code-block::bash

   #!/bin/bash
   # Переход в директорию с резервными копиями
   cd /tmp/backup
   # Остановка затрагиваемых восстановлением сервисов
   systemctl stop apache2 tftpd-hpa postgresql aldpro-salt-minion
   # Восстановление БД PostgreSQL
   tar -C "/" -xvf postgresql.tar.gz
   # Восстановление логов
   tar -C "/" -xvf log.tar.gz
   # Восстановление директории etc
   tar -C "/" -xvf etc.tar.gz
   # Восстановление ipa-client
   tar -C "/" -xvf ipa-client.tar.gz
   # Восстановление директории tftp
   tar -C "/" -xvf tftp.tar.gz
   # Перезагрузка
   reboot

* Машина, на которой располагалась подсистема, вышла из строя и нет возможности восстановить ее работу.
  Для восстановления подсистемы необходимо завести в домен машину с именем и адресом, идентичными тем, что были у машины, вышедшей из строя. С помощью команды ``aldpro-roles --uid --action install`` установить подсистему на новую машину.  Воспользоваться скриптом для восстановления:

.. code-block:: bash

   #!/bin/bash
   # Переход в директорию с резервными копиями
   cd /tmp/backup
   # Остановка затрагиваемых восстановлением сервисов
   systemctl stop apache2 tftpd-hpa postgresql aldpro-salt-minion
   # Восстановление БД PostgreSQL
   tar -C "/" -xvf postgresql.tar.gz
   # Восстановление логов
   tar -C "/" -xvf log.tar.gz
   # Восстановление директории tftp
   tar -C "/" -xvf tftp.tar.gz
   # Перезагрузка
   reboot
   
.. attention::

   При восстановлении указанным способом информация в LDAP и на сервере может отличаться. Чтобы избежать этого, после восстановления системы необходимо выполнить команду:
   ``aldpro-roles --subsystem_settings os``

Восстановление подсистемы репозиториев ПО
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

Восстановить подсистему необходимо, потому что:

* Производились работы с конфигурационным файлом, после чего подсистема перестала работать.
  Для восстановления подсистемы необходимо воспользоваться скриптом:

.. code-block:: bash

   #!/bin/bash
   # Переход в директорию с резервными копиями
   cd /tmp/backup
   # Остановка затрагиваемых восстановлением сервисов
   systemctl stop apache2 postgresql rabbitmq-server aldpro-salt-minion
   # Восстановление БД PostgreSQL
   tar -C "/" -xvf postgresql.tar.gz
   # Восстановление RabbitMQ
   tar -C "/" -xvf rabbitmq.tar.gz
   # Восстановление логов
   tar -C "/" -xvf log.tar.gz
   # Восстановление директории etc
   tar -C "/" -xvf etc.tar.gz
   # Восстановление ipa-client
   tar -C "/" -xvf ipa-client.tar.gz
   # Восстановление директории с репозиториями
   t ar -C "/" -xvf storage.tar.gz
   # Перезагрузка  
   reboot

* Машина, на которой располагалась подсистема, вышла из строя и нет возможности восстановить ее работу.
  Для восстановления подсистемы необходимо завести в домен машину с именем и адресом, идентичными тем, что были у машины, вышедшей из строя. С помощью команды ``aldpro-roles --uid --action install`` установить подсистему на новую машину. Запустить команду для получения переменных конфигурации для подсистемы ``aldpro-salt-call aldpro_subsystems.build_repo_role_pillar``. Запустить команду для генерации конфигурационных файлов из полученных переменных ``aldpro-salt-call state.apply roles.repo``. Воспользоваться скриптом для восстановления ниже. 

Скрипт для восстановления подсистемы:

.. code-block:: bash

   #!/bin/bash
   # Переход в директорию с резервными копиями
   cd /tmp/backup
   # Остановка затрагиваемых восстановлением сервисов
   systemctl stop apache2 postgresql rabbitmq-server aldpro-salt-minion
   # Восстановление БД PostgreSQL
   tar -C "/" -xvf postgresql.tar.gz
   # Восстановление RabbitMQ
   tar -C "/" -xvf rabbitmq.tar.gz
   # Восстановление директории с репозиториями
   tar -C "/" -xvf storage.tar.gz
   # Восстановление логов
   tar -C "/" -xvf log.tar.gz
   # Перезагрузка
   reboot

Восстановление подсистемы общего доступа к файлам
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

Восстановить подсистему необходимо, потому что:

* Производились работы в конфигурационных файлах, после чего подсистема перестала работать.
  Для восстановления подсистемы необходимо воспользоваться скриптом:

.. code-block:: bash

   #!/bin/bash
   # Переход в директорию с резервными копиями
   cd /tmp/backup
   # Остановка затрагиваемых восстановлением сервисов
   systemctl stop smbd nmbd aldpro-salt-minion 
   # Восстановление логов
   tar -C "/" -xvf log.tar.gz
   # Восстановление директории etc
   tar -C "/" -xvf etc.tar.gz
   # Восстановление ipa-client
   tar -C "/" -xvf ipa-client.tar.gz
   # Восстановление общих директорий samba
   tar -C "/" -xvf samba.tar.gz
   # Перезагрузка 
   reboot  

* Машина, на которой располагалась подсистема, вышла из строя и нет возможности восстановить ее работу.
  Для восстановления подсистемы необходимо завести в домен машину с именем и адресом, идентичными тем, что были у машины, вышедшей из строя. С помощью команды ``aldpro-roles --uid --action install`` установить подсистему на новую машину. Запустить команду для получения переменных конфигурации для подсистемы ``aldpro-salt-call aldpro_subsystems.build_smb_role_pillar``. Запустить команду для генерации конфигурационных файлов из полученных переменных ``aldpro-salt-call state.apply roles.smb``. Воспользоваться скриптом для восстановления ниже. 

Скрипт для восстановления подсистемы:

.. code-block:: bash

   #!/bin/bash
   # Переход в директорию с резервными копиями
   cd /tmp/backup
   # Остановка затрагиваемых восстановлением сервисов
   systemctl stop smbd nmbd aldpro-salt-minion
   # Восстановление общих директорий samba
   tar -C "/" -xvf samba.tar.gz
   # Восстановление логов
   tar -C "/" -xvf log.tar.gz
   # Перезагрузка
   reboot

.. attention::

   При восстановлении указанным способом информация в LDAP и на сервере может отличаться. Чтобы избежать этого, после восстановления системы необходимо выполнить команду:

   .. code-block:: bash

      aldpro-roles --subsystem_settings smb


Особенности интеграции с RuBackup
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

При копировании и восстановлении данных с помощью ``rubackup-client`` или непосредственно утилитами ``ipa-backup/ipa-restore`` из-за перезапуска служб каталога на контроллерах перестает работать WEB-сервис ``apache2``, обеспечивающий доступ к консоли управления **ALD Pro**. 

Для восстановления доступа к консоли управления **ALD Pro** нужно запустить сервис ``apache2``.

При восстановлении данных из ``rubackup manager`` необходимо установить ползунок **Восстановить на целевом ресурсе**. Без этой опции восстановление данных каталога выполнено не будет.

.. figure:: Vosstanovit`_na_resurse.png
   :name: Vosstanovit`_na_resurse.png